1. Field of the Invention
This invention relates generally to computer networking, and more particularly to an application programming interface for provisioning services using limited defined atomic units.
2. Description of the Related Art
Current mobile computing environments allow computer users great variety in digital services, which can vary from device to device depending on the type of client device used and the needs of the user. Typically, mobile client devices obtain digital services via a provisioning server as illustrated in FIG. 1.
FIG. 1 is an illustration showing a prior art provisioning framework 100. The provisioning framework 100 includes a plurality of client devices 102a-102c in digital communication with a provisioning server 104. The client devices 102a-102c can be any type of digital computing device. For example, as shown in FIG. 1, exemplary client devices include telematics client devices 102a in automobiles, mobile phones 102b, and a desktop computers 102c. 
The provisioning server 104 is a network resource from which the client devices 102a-102c can obtain access to new digital services and update existing digital services. As illustrated in FIG. 1, one approach to implementing the provisioning server 104 is an adapter/application model. In this approach, the provisioning server 104 includes a plurality of provisioning adapter modules 106a-106c, which facilitate communication between the client devices 102a-102c and a provisioning application 108. The provisioning application 108 generally is a generic and more device independent application that includes the business logic for the provisioning service.
Each provisioning adapter 106a-106c is designed to communicate with a specific type of client device, and “translate” the client device communication into a form understandable by the provisioning application 108. For example, provisioning adapter 106a can be designed to communicate with the telematics client device 102a. In this case, the provisioning adapter 106a receives commands from the telematics client device 102a and translates the received commands into commands acceptable by the provisioning application 108. Similarly, the provisioning adapter 106b receives and translates commands from the mobile phone client device 102b, and the provisioning adapter 106c receives and translates commands from the desktop computer client device 102c. 
As can appreciated, each provisioning adapter 106a-106c also facilitates command and content delivery from the provisioning application 108 to each client device 102a-102c. That is, the provisioning adapter 106a receives commands from the provisioning application 108 and translates the received commands into commands acceptable by the telematics client device 102a. Similarly, the provisioning adapter 106b receives and translates commands from provisioning application 108 and delivers them to the mobile phone client device 102b, and the provisioning adapter 106c receives and translates commands for delivery to the desktop computer client device 102c. 
Generally, the provision server 104 keeps track of users using a database 110, which stores user information, service content, and other data usable by the provisioning application 108. In this manner, different services can be provided to different users based on their user information. For example, a particular user can pay for a service and a record of payment can be stored in the user information for that particular user. Thereafter, the user can access the services and other content bought.
Unfortunately, prior art provisioning servers 104 do not have a standard mechanism for communication between the adapters 106a-106c and the provisioning applications. Hence, different provisioning applications 108 can require different interface programming. Moreover, each adapter 106a-106c can implement commands to the provisioning application 108 in different manners. Thus, a prior art provisioning application 108 executed on a prior art provisioning server 104 generally is designed to operate with specific provisioning adapters 106a-106c that are designed along with the provisioning application 108. As a result, new provisioning adapters generally cannot be added to the provisioning server 104 without altering the provisioning application 108. That is, the provisioning application 108 generally must be altered if a further provisioning adapter is added at a later date to facilitate communication with another client device. Although improved client provisioning mechanisms have been developed, the flexibility and scope of these improvements are very limited.
In view of the foregoing, there is a need for a method for provisioning services that provides a standard communication mechanism for provisioning applications and provisioning adapters. The method should provide provisioning services using limited defined atomic units that can be utilized for a wide variety of applications and client devices.